package com.xd.pre.modules.tpshop.service.impl;

import com.xd.pre.modules.tpshop.domain.TpSpec;
import com.xd.pre.modules.tpshop.domain.TpSpecImage;
import com.xd.pre.modules.tpshop.domain.TpSpecItem;
import com.xd.pre.modules.tpshop.mapper.TpSpecMapper;
import com.xd.pre.modules.tpshop.service.ITpSpecService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xd.pre.modules.tpshop.virtuaBean.GoodsSpec_virtual;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/** 不要格式化
 * <p>
 *  服务实现类
 * </p>
 *
 * @author lx
 * @since 2020-06-03
 */
@Service
public class TpSpecServiceImpl extends ServiceImpl<TpSpecMapper, TpSpec> implements ITpSpecService {

    @Autowired
    private TpSpecMapper specMapper;

    @Override
    public List<GoodsSpec_virtual> GoodsSpec2Virtual(String goodsId){ // 通用方法
        List<GoodsSpec_virtual> gsv_list = new ArrayList<GoodsSpec_virtual>();
        GoodsSpec_virtual gsv = null;

        List<TpSpec> list_part1 = specMapper.find_SPProductSpec_list_byGoodsId_part1(Integer.parseInt(goodsId));
        List<TpSpecItem> list_part2 = specMapper.find_SPProductSpec_list_byGoodsId_part2(Integer.parseInt(goodsId));
        List<TpSpecImage> list_part3 = specMapper.find_SPProductSpec_list_byGoodsId_part3(Integer.parseInt(goodsId));
        if(list_part1!=null && !list_part1.isEmpty()  &&  list_part2!=null && !list_part2.isEmpty() &&  list_part3!=null && !list_part3.isEmpty()){
            for (int i = 0; i < list_part2.size(); i++) { // list集合有重复信息，so他们的size()都是一样的，不过list_part2中的没有重复，so，list_part2.size()是最标准的

                gsv = new GoodsSpec_virtual(

                        // 这里应该有：尺寸、内存、颜色 三个
                        list_part1.get(i).getName(),           // specName;//规格名称       `tp_spec`表 ts.`name`  // 内存、颜色......                   //`name`

                        //有多少个 `spec_item_key_id`就有多少个  GoodsSpec_virtual对象！！！
                        list_part2.get(i).getSpecItemKeyId(),  //itemID; //规格ID   `tp_spec_item`表 的主键id: tsi.`spec_item_key_id`           //`spec_item_key_id`
                        list_part2.get(i).getItem(),		   //item :　规格值          `tp_spec_item`表          tsi.`item`//  与`规格名称`对应的 value      // `item`

                        list_part3.get(i).getSrc()
                );

                gsv_list.add(gsv);
            }
        }
        return gsv_list;
    }

}
